From 4b1ec5dc3397f7f91a8b16c8d8a7b59a72f5fda9 Mon Sep 17 00:00:00 2001 From: "kaf24@scramble.cl.cam.ac.uk" Date: Mon, 14 Jul 2003 22:10:03 +0000 Subject: [PATCH] bitkeeper revision 1.339.1.12 (3f132a3btAOPZiDtrKz16GwA9Wr_ow) memory.c, fault.c, i386_ksyms.c: Simplified Xenolinux mm code by removing some 386-only functionality. --- .../arch/xeno/kernel/i386_ksyms.c | 1 - xenolinux-2.4.21-sparse/arch/xeno/mm/fault.c | 65 ------------------- xenolinux-2.4.21-sparse/mm/memory.c | 9 --- 3 files changed, 75 deletions(-) diff --git a/xenolinux-2.4.21-sparse/arch/xeno/kernel/i386_ksyms.c b/xenolinux-2.4.21-sparse/arch/xeno/kernel/i386_ksyms.c index 67fa16c4e1..b62c171b3c 100644 --- a/xenolinux-2.4.21-sparse/arch/xeno/kernel/i386_ksyms.c +++ b/xenolinux-2.4.21-sparse/arch/xeno/kernel/i386_ksyms.c @@ -53,7 +53,6 @@ EXPORT_SYMBOL(drive_info); /* platform dependent support */ EXPORT_SYMBOL(boot_cpu_data); -EXPORT_SYMBOL(__verify_write); EXPORT_SYMBOL(dump_thread); EXPORT_SYMBOL(dump_fpu); EXPORT_SYMBOL(dump_extended_fpu); diff --git a/xenolinux-2.4.21-sparse/arch/xeno/mm/fault.c b/xenolinux-2.4.21-sparse/arch/xeno/mm/fault.c index fb11ea03c4..d4d24d2085 100644 --- a/xenolinux-2.4.21-sparse/arch/xeno/mm/fault.c +++ b/xenolinux-2.4.21-sparse/arch/xeno/mm/fault.c @@ -29,71 +29,6 @@ extern void die(const char *,struct pt_regs *,long); pgd_t *cur_pgd; -/* - * Ugly, ugly, but the goto's result in better assembly.. - */ -int __verify_write(const void * addr, unsigned long size) -{ - struct vm_area_struct * vma; - unsigned long start = (unsigned long) addr; - - if (!size) - return 1; - - vma = find_vma(current->mm, start); - if (!vma) - goto bad_area; - if (vma->vm_start > start) - goto check_stack; - -good_area: - if (!(vma->vm_flags & VM_WRITE)) - goto bad_area; - size--; - size += start & ~PAGE_MASK; - size >>= PAGE_SHIFT; - start &= PAGE_MASK; - - for (;;) { - survive: - { - int fault = handle_mm_fault(current->mm, vma, start, 1); - if (!fault) - goto bad_area; - if (fault < 0) - goto out_of_memory; - } - if (!size) - break; - size--; - start += PAGE_SIZE; - if (start < vma->vm_end) - continue; - vma = vma->vm_next; - if (!vma || vma->vm_start != start) - goto bad_area; - if (!(vma->vm_flags & VM_WRITE)) - goto bad_area;; - } - return 1; - -check_stack: - if (!(vma->vm_flags & VM_GROWSDOWN)) - goto bad_area; - if (expand_stack(vma, start) == 0) - goto good_area; - -bad_area: - return 0; - -out_of_memory: - if (current->pid == 1) { - yield(); - goto survive; - } - goto bad_area; -} - extern spinlock_t timerlist_lock; /* diff --git a/xenolinux-2.4.21-sparse/mm/memory.c b/xenolinux-2.4.21-sparse/mm/memory.c index d3833e4bf3..f06ad4b77d 100644 --- a/xenolinux-2.4.21-sparse/mm/memory.c +++ b/xenolinux-2.4.21-sparse/mm/memory.c @@ -1381,15 +1381,6 @@ int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct * vma, pgd_t *pgd; pmd_t *pmd; -#if defined(CONFIG_XENO_PRIV) - /* Take care of I/O mappings right here. */ - if (vma->vm_flags & VM_IO) { - if (write_access && !(vma->vm_flags & VM_WRITE)) - return -1; - return 1; - } -#endif - current->state = TASK_RUNNING; pgd = pgd_offset(mm, address); -- 2.30.2